Java本地内存LoadingCache介绍 您所在的位置:网站首页 java 本地缓存 guava Java本地内存LoadingCache介绍

Java本地内存LoadingCache介绍

2023-12-10 07:50| 来源: 网络整理| 查看: 265

一、本地缓存设计思路

如果让我们去设计一个本地缓存,需要考虑以下问题:

1、数据存储结构如何设计

本地缓存应该是要能高效的查找,因此数据的存储结构很关键;

最简单的设计就是一个大的HashMap,这样在多线程写的时候会有问题,当然也可以用并发场景下高性能的ConcurrencyHashMap;当然还可以自己设计底层的存储结构;

2、如何限制本地缓存的大小

为什么要限制,因为内存是宝贵的资源,作为容错处理必须有相应的参数设置本地缓存占用内存大小,具体来说是按内存大小,还是其它维度?

3、更新问题

实际场景缓存的内容是有过期时间的,即过一段时间需要更新,具体是通过过期时间的方式还是刷新机制

4、并发问题

当缓存快要过期了,如果这个时候多线程来取数据,是有一个线程能更新还是随机?

二、LoadingCache介绍

LoadingCache是大名鼎鼎的Google的Guava包的一个本地缓存接口(Guava是一个优秀的类库,具体就不在这里介绍了,有兴趣的同学可以自己百度下),定义如下:

@GwtCompatible public interface LoadingCache extends Cache, Function { V get(K key) throws ExecutionException; V getUnchecked(K key); ImmutableMap getAll(Iterable


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有